home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 147 / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin / games / addition / addi_nnn.bas < prev    next >
BASIC Source File  |  2000-07-08  |  8KB  |  355 lines

  1. screen 0,2,1,1
  2. window(0,0,511,511)
  3. /*
  4. sp_init()
  5. sp_xinit()
  6. sp_clr(0,255)
  7. sp_disp(1)
  8. sp_on(0,127)
  9. spfile_def("addsp.SP", 0)
  10. palfile_def("addsp.PAL", 1)
  11. /*
  12. /*
  13. /*
  14. str dummy
  15. dim char k(4,11),spmap(4,11),sp(63)
  16. char blk,next_blk,col,next_col
  17. dim char se0(4687),se1(4687),se2(2092),se3(8295),se4(5931)
  18. dim char go(15)= {&H26,&h20,&h2c,&h24,&h0f,&h2e,&h35,&h24,&h31}
  19. dim char push(10)={&h2f,&h34,&h32,&h27,&h0f,&h32,&h33,&h20,&h31,&h33}
  20. dim char bgm_op(1500),p_stop(12),bgm0(5361),bgm1(701)
  21. char MODE
  22. char COUNT=8
  23. int spr,pcm_fp,fm_fp
  24. int score=0
  25. int x, y, ni
  26. int block_pd,next_block_pd
  27. int l,i,j,lp,fp
  28. /*
  29. /*
  30. /*
  31. fm_fp=fopen("OPM","w")
  32. fp=fopen("adop.zmd","r")
  33. fread(bgm_op,1500,fp)
  34. fclose(fp)
  35. fp=fopen("ps.zmd","r")
  36. fread(p_stop,12,fp)
  37. fclose(fp)
  38. fp=fopen("ne1.zmd","r")
  39. fread(bgm0,5361,fp)
  40. fclose(fp)
  41. fp=fopen("ec.zmd","r")
  42. fread(bgm1,701,fp)
  43. fclose(fp)
  44. /*
  45. pcm_fp=fopen("PCM","w")
  46. fp=fopen("se0.pcm","r")
  47. fread(se0,4687,fp)
  48. fclose(fp)
  49. fp=fopen("se1.pcm","r")
  50. fread(se1,4687,fp)
  51. fclose(fp)
  52. fp=fopen("se2.pcm","r")
  53. fread(se2,2092,fp)
  54. fclose(fp)
  55. fp=fopen("se3.pcm","r")
  56. fread(se3,8295,fp)
  57. fclose(fp)
  58. fp=fopen("se4.pcm","r")
  59. fread(se4,5931,fp)
  60. fclose(fp)
  61. /*
  62. /*************************************************** メイン
  63. /*
  64. v_priority( "TSG", "10")
  65. while 1
  66.   ar_init()
  67.   MODE = 1 - title()
  68.   if MODE = -1 then exit()
  69.   main()
  70. endwhile
  71. /*
  72. /*************************************************** ゲーム用意
  73. /*
  74. func main()
  75. x = 2
  76. y = 0
  77. ni = 0
  78. spr = 0
  79. /*
  80. vpage(0) /* 画面真っ黒
  81. apage(0)
  82. apic_load("adbg0.PIC")
  83. apage(1)
  84. box(87,39,168,232,&h20)
  85. box(86,38,169,233,&h20)
  86.  
  87. for l=64 to 82:sp_set(l, 0, 0, 0):next
  88. for l=0 to 9
  89.   sp_set(69 + l, l * 16 + 66, 128, &h400 + push(l))
  90. next
  91. /*
  92. sp_set(68,  63, 24, &h42d) /* NEXT
  93. sp_set(67,  79, 24, &h424)
  94. sp_set(66,  95, 24, &h437)
  95. sp_set(65, 111, 24, &h433)
  96. /*
  97. blk = block()
  98. col = b_col()
  99. next_blk = block()
  100. next_col = b_col()
  101. /*
  102. if MODE then next_col=col
  103. block_pd = col * &h100 + blk
  104. sp_set(0, 135, 24, block_pd)
  105. for l=0 to 9 : sp_set(69 + l, l * 16 + 66, 128, &h400 + push(l)) : next
  106. vpage(3) /* 画面開けます
  107. while strig(1)=0 and asc(inkey$(0))<>&h20 : endwhile
  108. for l=69 to 82:sp_set(l, 0, 0, 0):next
  109. /*
  110. sp_set(0, 135, 40, block_pd)
  111. next_block_pd = next_col * &h100 + next_blk
  112. sp_set(64, 135, 24, next_block_pd)
  113. fwrite(se4,5931,pcm_fp)
  114. fwrite(bgm0,5361,fm_fp)
  115. wait(60)
  116. /*
  117. /*************************************************** ゲーム開始
  118. /*
  119. score=0
  120. while 1
  121.   locate 21,1:print using "#####,@";score,"億点"
  122.   spr=0
  123. iocs(3,0)
  124.   while 1
  125.     if sp(spr)=0 then break else spr=spr+1
  126.   endwhile
  127.   sp_set(spr, 135, 40, block_pd)
  128.  if k(2,0) then gameover():break
  129.   for y=0 to 11
  130.     for l=0 to 2
  131.       wait(COUNT)
  132.       lp = joy()
  133.       sp_set(spr, x * 16 + 103, y * 16 + 55, block_pd)
  134.       if lp then break
  135.     next
  136.        if y=11 then add(y):break
  137.        if k(x,y+1) then ni = add(y):break
  138.        if k(x,y)=0 then sp_set(spr, x * 16 + 103, y * 16 + 55, block_pd)
  139.    next
  140. /*
  141. blk = next_blk
  142.   col = next_col
  143.   next_blk = block()
  144.   next_col = b_col()
  145.   if MODE then next_col=col
  146.   if ni and MODE=0 then next_blk = 2 : ni = 0
  147.   block_pd = next_col * &h100 + next_blk
  148.   sp_set(64, 135, 24, block_pd)
  149.   block_pd = col * &h100 + blk
  150.   x = 2
  151. endwhile
  152. endfunc
  153. end
  154. /*
  155. /*************************************************** 消えるかな?
  156. /*
  157. func add(y)
  158. int ret
  159. k(x,y)=blk
  160. spmap(x,y)=spr
  161. sp(spr)=col
  162. if y>=10 then return(0)
  163. if (k(x,y)+k(x,y+1))=k(x,y+2) then ret = block_clr():return(ret)
  164. if abs(k(x,y)-k(x,y+1))=k(x,y+2) then ret = block_clr():return(ret)
  165. /* @@3つとも同じ
  166. if ( (k(x,y)=k(x,y+1)) and (k(x,y+1)=k(x,y+2)) ) then ret = block_clr():return(ret)
  167. return(0)
  168. endfunc
  169. /*
  170. /*************************************************** 消します
  171. /*
  172. func block_clr()
  173. int ret = 0
  174. fwrite(se0,4687,pcm_fp)
  175. for l=7 to 14
  176.   for j=0 to 2
  177.    sp_set(spmap(x,y+j), x * 16 +103, (y+j) * 16 + 55, &h510+l)
  178.    v_disp()
  179.   next
  180. next
  181. /*
  182. if sp(spmap(x,y)) = sp(spmap(x,y+1)) then if sp(spmap(x,y+1)) = sp(spmap(x,y+2)) then ret = -1
  183. score = score + k(x,y) + k(x,y+1) + k(x,y+2)
  184. /*
  185. for i=0 to 2
  186.   k(x,y+i)=0
  187.   sp_set(spmap(x,y+i), 0, 0, &h100)
  188.   sp(spmap(x,y+i))=0
  189.   spmap(x,y+i)=0
  190. next
  191. return(ret)
  192. endfunc
  193. /*
  194. /*************************************************** キー入力
  195. /*
  196. func joy()
  197. char stk
  198. str kb
  199. int ret=0
  200. /*
  201. stk = stick(1)
  202. kb = inkey$(0)
  203. if asc(kb) then iocs(3,0)
  204. if asc(kb)=&h1b then exit()
  205. /*
  206. if stk = 0 then {
  207.   switch asc(kb)
  208.     case &h1e : stk = 8 : break
  209.     case &h38 : stk = 8 : break
  210.     case &h1c : stk = 6 : break
  211.     case &h36 : stk = 6 : break
  212.     case &h1d : stk = 4 : break
  213.     case &h34 : stk = 4 : break
  214.     case &h1f : stk = 2 : break
  215.     case &h32 : stk = 2 : break
  216.   endswitch
  217. }
  218. /*
  219. switch stk
  220.   case 2:ret = +1
  221.          break
  222.   case 8:if y=11 then break
  223.          if k(x,y+1) then break
  224.          ret = -1
  225.          break
  226.   case 4:if x=0 then break
  227.          if k(x-1,y) then break
  228.          x=x-1
  229.          v_disp()
  230.          break
  231.   case 6:if x=4 then break
  232.          if k(x+1,y) then break
  233.          x=x+1
  234.          v_disp()
  235.          break
  236. endswitch
  237. return(ret)
  238. endfunc
  239. /*
  240. /*************************************************** 数字決定
  241. /*
  242. func block()
  243. int rt
  244. rt = rand() mod 7 + 3
  245. return(rt)
  246. endfunc
  247. /*
  248. /*************************************************** カラー決定
  249. /*
  250. func b_col()
  251. int rt
  252. rt = rand() mod 3 + 1
  253. return(rt)
  254. endfunc
  255. /*
  256. /*************************************************** WAIT
  257. /*
  258. func wait(loop)
  259. int i
  260. for i=0 to loop
  261.   v_disp()
  262. next
  263. endfunc
  264. /*
  265. /*************************************************** ゲームオーバー
  266. /*
  267. func gameover()
  268. cls
  269. sp_set(spr, 0, 0, block_pd)
  270. for i=0 to 14
  271.   for y=0 to 11
  272.     for x=0 to 4
  273.       if k(x,11-y) then {
  274.        sp_set(spmap(x,11-y), x * 16 +103, (11 - y) * 16 + 55, &h610 + i)
  275.       }
  276.     next
  277.   next
  278.   fwrite(se1,4687,pcm_fp)
  279.   wait(1)
  280. next
  281. /*
  282. fwrite(bgm1,701,fm_fp)
  283. for j=0 to 8
  284.   sp_set(64 + j, j * 16 + 72, 128, &h400 + go(j))
  285. next
  286. /*
  287. wait(300)
  288. endfunc
  289. /*
  290. /*************************************************** 初期化
  291. /*
  292. func ar_init()
  293. int x,y,i
  294. for x=0 to 4
  295.   for y=0 to 11
  296.     k(x,y)=0
  297.     spmap(x,y)=0
  298.   next
  299. next
  300. for i=0 to 63:sp(i)=0:next
  301. endfunc
  302. /*
  303. /*************************************************** タイトル画面
  304. /*
  305. func title()
  306. dim char nrm(6)={&h2d,&h2e,&h31,&h2c,&h20,&h2b}
  307. dim char trp(6)={&h33,&h31,&h28,&h2f,&h2b,&h24}
  308. dim char ext(6)={&h0f,&h24,&h37,&h28,&h33,&h0f}
  309. int i,l,tg
  310. vpage(0) /* 画面真っ黒
  311. apage(0)
  312. apic_load("title.pic")
  313. apage(1)
  314. wipe()
  315. /*
  316. for i=0 to 5
  317.   sp_set(64 + i, 96 + i * 16, 152, &h400 + nrm(i))
  318.   sp_set(70 + i, 96 + i * 16, 176, &h400 + trp(i))
  319.   sp_set(76 + i, 96 + i * 16, 200, &h400 + ext(i))
  320. next
  321. vpage(3) /* 画面開けます
  322. /*
  323. i = 0
  324. y = 0
  325. x = 2
  326. /*
  327. fwrite(bgm_op,1500,fm_fp)
  328. while 1
  329.   sp_set( 82, 72, 152 + y * 24, &hb40)
  330.   tg = joy()
  331.   if tg = -1  and y>0 then y=y-1:wait(5):fwrite(se2, 2092, pcm_fp)
  332.   if tg = +1  and y<2 then y=y+1:wait(5):fwrite(se2, 2092, pcm_fp)
  333.   if strig(1) then break
  334.   if asc(inkey$(0))=&h20 then break
  335.   wait(3)
  336. endwhile
  337. /*
  338. fwrite(p_stop,12,fm_fp)
  339. fwrite(se3,8295,pcm_fp)
  340. for l=0 to 47
  341.   i = (i + 1) and 3
  342.   wait(1)
  343.   sp_set( 82, 72, 152 + y * 24, &hb40 + i)
  344. next
  345. /*
  346. sp_set( 82,,, &hb40)
  347. if y=0 then for l=70 to 81:sp_set( l, 0, 0, 0):next
  348. if y=1 then for l=64 to 69:sp_set( l, 0, 0, 0):sp_set( l + 12, 0, 0):next
  349. if y=2 then for l=64 to 75:sp_set( l, 0, 0, 0):next
  350.  
  351. return(y)
  352. endfunc
  353. end
  354.  
  355.